<script>
var ptable=null, tableId='ID_master_table';
layui.config({
	base: '#(ctx)/manage/_assets/libs/layui/extends/'
}).extend({
	treeGrid:'treeGrid'
}).use(['jquery', 'treeGrid', 'layer', 'form'], function() {
	var $=layui.jquery, treeGrid=layui.treeGrid, layer=layui.layer;
	form=layui.form;
	ptable = treeGrid.render({
		id : tableId,
		elem : "#" + tableId,
		idField : "id", // 必須字段
		url : "#(ctx)/manage/resource/ajaxSearch",
		cellMinWidth : 100,
		// toolbar : '#ID_master_table_toolbar',
		treeId : "id", // 树形id字段名称
		treeUpId : "parentId", // 树形父id字段名称
		treeShowName : "name", // 以树形式显示的字段
		heightRemove : [".dHead",140],
		height : '100%',
		isFilter : false,
		iconOpen : false, // 是否显示图标【默认显示】
		isOpenDefault : true, // 节点默认是展开还是折叠【默认展开】
		loading : true,
		method : 'post',
		cols : [ [
			{ fixed : true, type : 'numbers' },
			{ fixed : true, field : 'status', width : 70, title : '状态', align : 'center',
				templet : function(d) {
					if(d.status == 'on'){
						return '<span class="layui-badge layui-bg-gray">启用</span>';
					} else {
						return '<span class="layui-badge">禁用</span>';
					}
				}
			},
			{ fixed : true, field : 'name', width : 300, title : '名称',
				templet : function(d) {
					var name="";
					if(d.icon){
						name += '<i class="layui-icon ' + d.icon + '"></i>'
					}
					name += '	' + d.name;
					return name;
				}
			},
			{ field : 'typeName', width : 100, title : '类型', align : 'center',
				templet : function(d) {
			#dictList(parentKey="resource_type")
				#for(dict : dictList)
					if(d.type == '#(dict.key)'){
						return '<span class="layui-badge #(dict.para)">#(dict.value)</span>';
					}
				#end
			#end
				}
			},
			{ width : 200, title : '操作', align : 'center',
				templet : function(d) {
					var addBtn = '<a class="layui-btn layui-btn-xs" lay-event="add"><i class="layui-icon layui-icon-add-1"></i></a>';
					var editBtn = '<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i></a>';
					var delBtn = '<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i></a>';
					return addBtn + editBtn + delBtn;
				}
			},
			{ width : 100, title : '记录日志',
				templet : function(d) {
					var tpl="";
					if(d.type == "action"){
						tpl += '<input data-id="' + d.id
							+ '" type="checkbox" lay-skin="switch" lay-filter="LAY-is-log" lay-text="开启|关闭" '
							+ (d.isLog ? "checked" : "") + ' value="' + d.isLog + '">';
					}
					return tpl;
				}
			},
			{ field : 'sortNum', width : 80, title : '排序', align : 'center'},
			{ field : 'code', width : 140, title : '代码' },
			{ field : 'remark', title : '描述' }
		] ],
		isPage : false,
		parseData:function (res) { // 数据加载后回调
			return res;
		},
		onClickRow:function (index, data) {
			//console.log(index,data,"单击！");
		},
		onDblClickRow:function (index, data) {
			//console.log(index, data, "双击");
			view(data);
		}
	});

	/*
	// 监听头部工具栏事件
	treeGrid.on('toolbar(LAY-master-table)', function(obj){
		if (obj.event === 'addTop'){
			addOrEdit('添加顶层资源', '#(ctx)/manage/resource/add?parentId=');
		};
	});
	*/

	// 用于响应各个按钮的点击事件
	$('#ID_btn_search').on('click', function() {
		reload();
	});

	$("#ID_add_top").on("click", function(){
		addOrEdit('添加顶层资源', '#(ctx)/manage/resource/add?parentId=');
	});

	$("#ID_expand_all").on("click", function(){
		expandAll();
	});

	// 监听操作列按钮事件
	treeGrid.on('tool(LAY-master-table)', function(obj) {
		var data = obj.data;
		if (obj.event === 'add') {
			addOrEdit('添加资源', '#(ctx)/manage/resource/add?parentId=' + data.id);
		} else if (obj.event === "edit") {
			addOrEdit('编辑资源', '#(ctx)/manage/resource/edit?id=' + data.id);
		} else if (obj.event === "del") {
			del(data);
		}
	});

	// --------------- 以上是操作监听脚本 ---------------
	// --------------- 以下是操作执行脚本 ---------------

	// 展开或折叠
	function expandAll() {
		var treedata=treeGrid.getDataTreeList(tableId);
		treeGrid.treeOpenAll(tableId,!treedata[0][treeGrid.config.cols.isOpen]);
	}

	// 重载操作
	function reload(){
		treeGrid.reload(tableId, {
			where:{
				type : $("#ID_type").val()
			}
		});
	}

	// 新增或编辑操作
	function addOrEdit(title, actUrl){
		layer.open({
			type : 2,
			title : title,
			content : actUrl,
			maxmin : false,
			area : [ '800px', '520px' ],
			closeBtn : 1,
			shadeClose : false,
			anim : 1,
			moveOut : false,
			resize : false,
			btn : [ '保存', '取消' ],
			yes : function(index, layero) {
				var iframeWindow = window['layui-layer-iframe' + index],
					submitID = 'LAY-front-submit', // 此ID必须和弹出iframe窗口中提交按钮的ID和Filter值一致
					submit = layero.find('iframe').contents().find('#' + submitID);

				// 监听提交
				iframeWindow.layui.form.on('submit('+ submitID + ')', function(data) {
					$.ajax({ // 用Ajax替换弹窗中的提交
						url : "#(ctx)/manage/resource/ajaxSaveOrUpdate",
						type : "post",
						data : data.field, // 获取提交的数据
						beforeSend : function(){layer.load(1);}, // 防止重复操作
						complete : function(){layer.closeAll('loading');}, // 解除防重复操作
						success : function(ret){
							if(ret.code == 0){
								// 提交 Ajax 成功后，静态更新表格中的数据
								reload(); // 数据表格刷新
								layer.close(index); // 关闭弹层
							} else {
								if(ret.msg){
									layer.alert(ret.msg, {icon: 0}); // Ajax调用成功，但后台返回失败信息
								} else {
									layer.alert("操作失败！", {icon: 2});
								}
							}
						},
						error : function (e) { // Ajax调用失败
							layer.alert("操作失败：" + e.responseText, {icon: 2});
						}
					});
					return false; // 一定要返回False来阻止弹出窗口中提交按钮的再次提交
				});

				submit.trigger('click'); // 这里触发弹出窗口的提交按钮
			}
		});
	}

	// 删除记录操作
	function del(data){
		layer.confirm('操作会将所有子项全部删除，确定要删除么？', function(index) {
			layer.confirm('删除操作不可逆，请再次确认？', function(index) {
				$.ajax({
					url : '#(ctx)/manage/resource/ajaxDel?id=' + data.id,
					type : "get",
					beforeSend : function(){layer.load(1);}, // 防止重复操作
					complete : function(){layer.closeAll('loading');}, // 解除防重复操作
					success : function(ret){
						if(ret.code == 0){
							layer.alert("删除成功！", {icon: 1});
							// 提交 Ajax 成功后，静态更新表格中的数据
							reload(); // 数据刷新
							layer.close(index); // 关闭弹层
						} else {
							if(ret.msg){
								layer.alert(ret.msg, {icon: 0});
							} else {
								layer.alert("操作失败！", {icon: 2});
							}
							layer.close(index); // 关闭弹层
						}
					},
					error : function (e) {
						layer.alert("调用失败：" + e.responseText, {icon: 2});
						layer.close(index); // 关闭弹层
					}
				});
			});
		});
	}

	// 查看记录操作
	function view(data){
		layer.open({
			type : 2,
			title : "查看资源",
			content : '#(ctx)/manage/resource/view?id=' + data.id,
			maxmin : false,
			area : [ '800px', '500px' ],
			closeBtn : 1,
			shadeClose : false,
			anim : 1,
			moveOut : false,
			resize : false,
			btn : [ '关闭' ],
			yes : function(index, layero) {
				layer.close(index); // 关闭弹层
			}
		});
	}

	form.on('switch(LAY-is-log)', function(data){
		var orgValue =  !data.elem.checked;
		var postData = {id: $(data.elem).attr("data-id")};
		console.log(orgValue);
		$.ajax({
			url : '#(ctx)/manage/resource/ajaxSwitchEnabledLog',
			type : "post",
			data : postData,
			beforeSend : function(){layer.load(1);}, // 防止重复操作
			complete : function(){layer.closeAll('loading');}, // 解除防重复操作
			success : function(ret){
				if(ret.code == 0){
					data.elem.checked = ret.isLog;
					data.elem.value = ret.isLog;
					data.value = ret.isLog;
				} else {
					data.elem.checked = orgValue;
					if(ret.msg){
						layer.msg(ret.msg, {icon: 0});
					} else {
						layer.msg("操作失败！", {icon: 2});
					}
				}
				form.render('checkbox');
			},
			error : function (e) {
				data.elem.checked = orgValue;
				layer.alert("调用失败：" + e.responseText, {icon: 2});
				form.render('checkbox');
			}
		});
	});
});
</script>
